/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package domain.controllers;

import domain.Entity.EntityProyecto;
import domain.Entity.EntityUsuario;
import domain.commands.ProyectoComando;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import managers.ProyectoManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;

/**
 *
 * @author jorge
 */
public class datosProyectoController extends SimpleFormController{
    
    ProyectoManager pm = ProyectoManager.getInstance();
    
     @Override
    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, org.springframework.validation.BindException errors) throws Exception {
   
        ModelAndView mav = new ModelAndView();
        HttpSession session = request.getSession();
       EntityUsuario eu = (EntityUsuario) session.getAttribute("usuario");
        if(eu == null){
            mav.setView(new RedirectView("login.htm"));
            return mav;
        }else{
        ProyectoComando pc = (ProyectoComando) command;
        
        //EntityProyecto ep = null;
        EntityProyecto ep = pm.get(request.getParameter("proyecto"));
        


        
        int horasMax = 0;
        if(!pc.getHorasMaximas().equals("")){
            horasMax = Integer.valueOf(pc.getHorasMaximas()).intValue();
        }
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date fecIni = sdf.parse(pc.getFechaIni());
        Date fecFin = sdf.parse(pc.getFechaFin());
        double precio = 0.0;
        if(!pc.getPrecioHora().equals("")){
             precio = Double.valueOf(pc.getPrecioHora()).doubleValue();
        }
        String completado = pc.getCompletado();
        boolean comp = false;
        if(completado !=null){
            if(completado.equals("ON") || completado.equals("on")){
                comp = true;
            }
        }
        if(!pc.getNombreProyecto().equals(ep.getNombreProyecto())){
            
                if(estaProyecto(pc.getNombreProyecto())){
            
                        mav.setView(new RedirectView("error.htm"));
                        return mav;
                 }
        }
    
        
        pm.modificarProyecto(ep,pc.getNombreProyecto(),pc.getDescripcion(),precio,horasMax,fecIni,fecFin,comp);

        
        mav.setView(new RedirectView("mostrarProyectos.htm"));
            
        
        return mav;
        }
    }
    
    private boolean estaProyecto(String nombre){
        
           //EntityProyecto ep= null;
         EntityProyecto ep = pm.get(nombre);          
           
         return (ep.getNombreProyecto() != null) ;
        
    }
        
    
}

